package com.huarun.module.sys.bean;

import java.io.Serializable;
import java.util.Date;

public class Subject implements Serializable {
    private Integer id;

    private Integer companyId;
    

    private Integer faceId; //对应face++中的id
    
    private String projectId; // 对应戎光项目Id

    private Short subjectType;

    private Integer createTime;

    private String email;

    private String passwordHash;

    private Boolean passwordReseted;

    private String realName;

    private String pinyin;

    private Short gender;

    private String phone;

    private String avatar;

    private String department;

    private String departmentPinyin;

    private String title;

    private String description;

    private Integer mobileOs;

    private Date birthday;

    private Date entryDate;

    private String jobNumber;

    private String remark;

    private Integer purpose;

    private String interviewee;

    private String intervieweePinyin;

    private String comeFrom;

    private Integer inviterId;

    private Boolean visited;

    private Boolean visitNotify;

    private Integer startTime;

    private Integer endTime;
    
    private Date syncTime; //同步face++数据的时间

    private static final long serialVersionUID = 1L;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public Short getSubjectType() {
        return subjectType;
    }

    public void setSubjectType(Short subjectType) {
        this.subjectType = subjectType;
    }

    public Integer getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Integer createTime) {
        this.createTime = createTime;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email == null ? null : email.trim();
    }

    public String getPasswordHash() {
        return passwordHash;
    }

    public void setPasswordHash(String passwordHash) {
        this.passwordHash = passwordHash == null ? null : passwordHash.trim();
    }

    public Boolean getPasswordReseted() {
        return passwordReseted;
    }

    public void setPasswordReseted(Boolean passwordReseted) {
        this.passwordReseted = passwordReseted;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName == null ? null : realName.trim();
    }

    public String getPinyin() {
        return pinyin;
    }

    public void setPinyin(String pinyin) {
        this.pinyin = pinyin == null ? null : pinyin.trim();
    }

    public String getProjectId() {
		return projectId;
	}

	public void setProjectId(String projectId) {
		this.projectId = projectId;
	}

	public Short getGender() {
        return gender;
    }

    public void setGender(Short gender) {
        this.gender = gender;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone == null ? null : phone.trim();
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar == null ? null : avatar.trim();
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department == null ? null : department.trim();
    }

    public String getDepartmentPinyin() {
        return departmentPinyin;
    }

    public void setDepartmentPinyin(String departmentPinyin) {
        this.departmentPinyin = departmentPinyin == null ? null : departmentPinyin.trim();
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title == null ? null : title.trim();
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description == null ? null : description.trim();
    }

    public Integer getMobileOs() {
        return mobileOs;
    }

    public void setMobileOs(Integer mobileOs) {
        this.mobileOs = mobileOs;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Date getEntryDate() {
        return entryDate;
    }

    public void setEntryDate(Date entryDate) {
        this.entryDate = entryDate;
    }

    public String getJobNumber() {
        return jobNumber;
    }

    public void setJobNumber(String jobNumber) {
        this.jobNumber = jobNumber == null ? null : jobNumber.trim();
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public Integer getPurpose() {
        return purpose;
    }

    public Integer getFaceId() {
		return faceId;
	}

	public void setFaceId(Integer faceId) {
		this.faceId = faceId;
	}

	public void setPurpose(Integer purpose) {
        this.purpose = purpose;
    }

    public String getInterviewee() {
        return interviewee;
    }

    public void setInterviewee(String interviewee) {
        this.interviewee = interviewee == null ? null : interviewee.trim();
    }

    public String getIntervieweePinyin() {
        return intervieweePinyin;
    }

    public void setIntervieweePinyin(String intervieweePinyin) {
        this.intervieweePinyin = intervieweePinyin == null ? null : intervieweePinyin.trim();
    }

    public String getComeFrom() {
        return comeFrom;
    }

    public void setComeFrom(String comeFrom) {
        this.comeFrom = comeFrom == null ? null : comeFrom.trim();
    }

    public Integer getInviterId() {
        return inviterId;
    }

    public void setInviterId(Integer inviterId) {
        this.inviterId = inviterId;
    }

    public Boolean getVisited() {
        return visited;
    }

    public void setVisited(Boolean visited) {
        this.visited = visited;
    }

    public Boolean getVisitNotify() {
        return visitNotify;
    }

    public void setVisitNotify(Boolean visitNotify) {
        this.visitNotify = visitNotify;
    }

    public Integer getStartTime() {
        return startTime;
    }

    public void setStartTime(Integer startTime) {
        this.startTime = startTime;
    }

    public Integer getEndTime() {
        return endTime;
    }

    public void setEndTime(Integer endTime) {
        this.endTime = endTime;
    }

    public Date getSyncTime() {
		return syncTime;
	}

	public void setSyncTime(Date syncTime) {
		this.syncTime = syncTime;
	}

	@Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        Subject other = (Subject) that;
        return 
//        		(this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId().equals(other.getCompanyId()))
            && (this.getProjectId() == null ? other.getProjectId() == null : this.getProjectId().equals(other.getProjectId()))
            && (this.getSubjectType() == null ? other.getSubjectType() == null : this.getSubjectType().equals(other.getSubjectType()))
//            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
//            && (this.getEmail() == null ? other.getEmail() == null : this.getEmail().equals(other.getEmail()))
//            && (this.getPasswordHash() == null ? other.getPasswordHash() == null : this.getPasswordHash().equals(other.getPasswordHash()))
//            && (this.getPasswordReseted() == null ? other.getPasswordReseted() == null : this.getPasswordReseted().equals(other.getPasswordReseted()))
            && (this.getRealName() == null ? other.getRealName() == null : this.getRealName().equals(other.getRealName()))
//            && (this.getPinyin() == null ? other.getPinyin() == null : this.getPinyin().equals(other.getPinyin()))
//            && (this.getGender() == null ? other.getGender() == null : this.getGender().equals(other.getGender()))
            && (this.getPhone() == null ? other.getPhone() == null : this.getPhone().equals(other.getPhone()))
//            && (this.getAvatar() == null ? other.getAvatar() == null : this.getAvatar().equals(other.getAvatar()))
            && (this.getDepartment() == null ? other.getDepartment() == null : this.getDepartment().equals(other.getDepartment()));
//            && (this.getDepartmentPinyin() == null ? other.getDepartmentPinyin() == null : this.getDepartmentPinyin().equals(other.getDepartmentPinyin()))
//            && (this.getTitle() == null ? other.getTitle() == null : this.getTitle().equals(other.getTitle()))
//            && (this.getDescription() == null ? other.getDescription() == null : this.getDescription().equals(other.getDescription()))
//            && (this.getMobileOs() == null ? other.getMobileOs() == null : this.getMobileOs().equals(other.getMobileOs()))
//            && (this.getBirthday() == null ? other.getBirthday() == null : this.getBirthday().equals(other.getBirthday()))
//            && (this.getEntryDate() == null ? other.getEntryDate() == null : this.getEntryDate().equals(other.getEntryDate()))
//            && (this.getJobNumber() == null ? other.getJobNumber() == null : this.getJobNumber().equals(other.getJobNumber()))
//            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
//            && (this.getPurpose() == null ? other.getPurpose() == null : this.getPurpose().equals(other.getPurpose()))
//            && (this.getInterviewee() == null ? other.getInterviewee() == null : this.getInterviewee().equals(other.getInterviewee()))
//            && (this.getIntervieweePinyin() == null ? other.getIntervieweePinyin() == null : this.getIntervieweePinyin().equals(other.getIntervieweePinyin()))
//            && (this.getComeFrom() == null ? other.getComeFrom() == null : this.getComeFrom().equals(other.getComeFrom()))
//            && (this.getInviterId() == null ? other.getInviterId() == null : this.getInviterId().equals(other.getInviterId()))
//            && (this.getVisited() == null ? other.getVisited() == null : this.getVisited().equals(other.getVisited()))
//            && (this.getVisitNotify() == null ? other.getVisitNotify() == null : this.getVisitNotify().equals(other.getVisitNotify()))
//            && (this.getStartTime() == null ? other.getStartTime() == null : this.getStartTime().equals(other.getStartTime()))
//            && (this.getEndTime() == null ? other.getEndTime() == null : this.getEndTime().equals(other.getEndTime()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode());
        result = prime * result + ((getSubjectType() == null) ? 0 : getSubjectType().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getEmail() == null) ? 0 : getEmail().hashCode());
        result = prime * result + ((getPasswordHash() == null) ? 0 : getPasswordHash().hashCode());
        result = prime * result + ((getPasswordReseted() == null) ? 0 : getPasswordReseted().hashCode());
        result = prime * result + ((getRealName() == null) ? 0 : getRealName().hashCode());
        result = prime * result + ((getPinyin() == null) ? 0 : getPinyin().hashCode());
        result = prime * result + ((getGender() == null) ? 0 : getGender().hashCode());
        result = prime * result + ((getPhone() == null) ? 0 : getPhone().hashCode());
        result = prime * result + ((getAvatar() == null) ? 0 : getAvatar().hashCode());
        result = prime * result + ((getDepartment() == null) ? 0 : getDepartment().hashCode());
        result = prime * result + ((getDepartmentPinyin() == null) ? 0 : getDepartmentPinyin().hashCode());
        result = prime * result + ((getTitle() == null) ? 0 : getTitle().hashCode());
        result = prime * result + ((getDescription() == null) ? 0 : getDescription().hashCode());
        result = prime * result + ((getMobileOs() == null) ? 0 : getMobileOs().hashCode());
        result = prime * result + ((getBirthday() == null) ? 0 : getBirthday().hashCode());
        result = prime * result + ((getEntryDate() == null) ? 0 : getEntryDate().hashCode());
        result = prime * result + ((getJobNumber() == null) ? 0 : getJobNumber().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        result = prime * result + ((getPurpose() == null) ? 0 : getPurpose().hashCode());
        result = prime * result + ((getInterviewee() == null) ? 0 : getInterviewee().hashCode());
        result = prime * result + ((getIntervieweePinyin() == null) ? 0 : getIntervieweePinyin().hashCode());
        result = prime * result + ((getComeFrom() == null) ? 0 : getComeFrom().hashCode());
        result = prime * result + ((getInviterId() == null) ? 0 : getInviterId().hashCode());
        result = prime * result + ((getVisited() == null) ? 0 : getVisited().hashCode());
        result = prime * result + ((getVisitNotify() == null) ? 0 : getVisitNotify().hashCode());
        result = prime * result + ((getStartTime() == null) ? 0 : getStartTime().hashCode());
        result = prime * result + ((getEndTime() == null) ? 0 : getEndTime().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", companyId=").append(companyId);
        sb.append(", subjectType=").append(subjectType);
        sb.append(", createTime=").append(createTime);
        sb.append(", email=").append(email);
        sb.append(", passwordHash=").append(passwordHash);
        sb.append(", passwordReseted=").append(passwordReseted);
        sb.append(", realName=").append(realName);
        sb.append(", pinyin=").append(pinyin);
        sb.append(", gender=").append(gender);
        sb.append(", phone=").append(phone);
        sb.append(", avatar=").append(avatar);
        sb.append(", department=").append(department);
        sb.append(", departmentPinyin=").append(departmentPinyin);
        sb.append(", title=").append(title);
        sb.append(", description=").append(description);
        sb.append(", mobileOs=").append(mobileOs);
        sb.append(", birthday=").append(birthday);
        sb.append(", entryDate=").append(entryDate);
        sb.append(", jobNumber=").append(jobNumber);
        sb.append(", remark=").append(remark);
        sb.append(", purpose=").append(purpose);
        sb.append(", interviewee=").append(interviewee);
        sb.append(", intervieweePinyin=").append(intervieweePinyin);
        sb.append(", comeFrom=").append(comeFrom);
        sb.append(", inviterId=").append(inviterId);
        sb.append(", visited=").append(visited);
        sb.append(", visitNotify=").append(visitNotify);
        sb.append(", startTime=").append(startTime);
        sb.append(", endTime=").append(endTime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}